using System;
using Tecnicas.CasoEstudio.Repositorio;
using Tecnicas.CasoEstudio.Back.Persistencia;

namespace Tecnicas.CasoEstudio.Back.Dominio
{
	[Serializable]
    public class Alquiler : DomainObject
	{

        private long? persistenceIdPelicula = null;
        public long? PersistenceIdPelicula
        {
            get { return this.persistenceIdPelicula; }
            set { this.persistenceIdPelicula = value; }
        }
        private Pelicula pelicula;
        public Pelicula Pelicula
		{
			get{

                if (this.pelicula == null && this.PersistenceIdPelicula != null)
                {
                    this.pelicula = (Pelicula)new PeliculaDataMapper().Find(typeof(Pelicula), this.PersistenceIdPelicula);
                }

                return this.pelicula;
            
            }
		}

        private int diasAlquilada;
        public int DiasAlquilada
		{
            get { return this.diasAlquilada; }
		}

        private DateTime fechaAlquiler;
        public DateTime FechaAlquiler
        {
            get { return this.fechaAlquiler; }
        }

        public Alquiler(Pelicula pelicula, int diasAlquilada)
		{
            this.fechaAlquiler = DateTime.Now;
            this.diasAlquilada = diasAlquilada;
            this.pelicula = pelicula;
		}

        public Alquiler(Pelicula pelicula, int diasAlquilada, DateTime fechaAlquiler)
		{
            this.fechaAlquiler = fechaAlquiler;
            this.diasAlquilada = diasAlquilada;
            this.pelicula = pelicula;
		}
	}
}
